<?php
namespace yunpian;
class Sms{
	public function send($phone,$apikey,$code,$tpl_id){
		//如果提示curl_init()函数没有，就是没有开启php_curl.dall扩展，需要在php.ini中开启
		$ch = curl_init();

		/* 设置验证方式 */
		curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/plain;charset=utf-8',
		    'Content-Type:application/x-www-form-urlencoded', 'charset=utf-8'));
		/* 设置返回结果为流 */
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

		/* 设置超时时间*/
		curl_setopt($ch, CURLOPT_TIMEOUT, 10);

		/* 设置通信方式 */
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);


		// 发送模板短信
		// 需要对value进行编码
		$data = array(
		    'tpl_id' => $tpl_id, //需要更换成自己的模板id
		    'tpl_value' => ('#code#').'='.urlencode($code),
		    'apikey' => $apikey,
		    'mobile' => $phone);	
		$json_data = $this->tpl_send($ch,$data);
		$array = json_decode($json_data,true);	
		//$array['code']=0代表短信发送成功，不是0代表发送失败
		return $array['code'];	
	}

	/*
	tpl_send和checkErr是云片网发送短信的两个方法
	来自于云片网发送短信API文档例子
	 */
	function tpl_send($ch,$data){
	    curl_setopt ($ch, CURLOPT_URL,
	        'https://sms.yunpian.com/v2/sms/tpl_single_send.json');
	    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
	    $result = curl_exec($ch);
	    $error = curl_error($ch);
	    $this->checkErr($result,$error);
	    return $result;
	}

	function checkErr($result,$error) {
	    if($result === false)
	    {
	        echo 'Curl error: ' . $error;
	    }
	    else
	    {
	        //echo '操作完成没有任何错误';
	    }
	}

}